﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

// NOTA: puede usar el comando "Cambiar nombre" del menú "Refactorizar" para cambiar el nombre de interfaz "IOtrosGrupos" en el código y en el archivo de configuración a la vez.
[ServiceContract]
public interface IOtrosGrupos
{
    //[OperationContract]
    //void DoWork();

    [OperationContract]
    List<Bienes> listarBienes(ListarBienesInput pedido);

    [OperationContract]
    List<Instancias> listarInstancias();
}

[DataContract]
public class Instancias
{
    public Instancias()
    {
      
    }

    public Instancias(int id, string nombre, string url, string nombreDelBien, List<Propiedad> metadata) 
    {
        Id = id;
        Nombre = nombre;
        NombreDelBien = nombreDelBien;
        Metadata = metadata;
    }

    [DataMember]
    public string Nombre;

    [DataMember]
    public int Id;

    [DataMember]
    public string Url;

    [DataMember]
    public string NombreDelBien;

    [DataMember]
    public List<Propiedad> Metadata;
}

[DataContract]
public class Propiedad
{
    [DataMember]
    public string Nombre;

    [DataMember]
    public string TipoDato;
}

[DataContract]
public class Bienes
{
    [DataMember]
    public string Url;

    [DataMember]
    public string UrlImagen;

    [DataMember]
    public string[] Datos;

    [DataMember]
    public decimal  Latitud;

    [DataMember]
    public decimal  Longitud;

    [DataMember]
    public string Nombre;
}

[DataContract]
public class ListarBienesInput
{
    [DataMember]
    public int CantidadDeBienesListados;

    [DataMember]
    public int IdInstancia;
}
   
